package com.ctcemti.mdm.project.sys.entity;

import cn.afterturn.easypoi.excel.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Transient;
import java.util.Date;

/**
 * 项目信息表
 */

@Data
@ApiModel(value = "项目信息表")
@Table(name = "org_project")
public class OrgProject {
    /**
     * 主键id
     */

    @ApiModelProperty(value = "主键id",required = true)
    @Id
    private String id;
    /**
     * 名称
     */
    @ApiModelProperty(value = "名称")
    @Excel(name="项目名称")
    private String name;
    /**
     * 简称
     */
    @ApiModelProperty(value = "简称")
    @Excel(name="项目简称")
    private String shortName;
    /**
     * 组织码
     */
    @ApiModelProperty(value = "组织码")
    @Excel(name="组织码")
    private String code;
    /**
     * 父级ID
     */
    @ApiModelProperty(value = "父id")
    private String prjId;
    /**
     * 上级组织ID
     */
    @ApiModelProperty(value = "上级组织ID")
    private String orgId;
    /**
     * 项目类别
     */
    @ApiModelProperty(value = "项目类别")
    @Excel(name="项目类别")
    private String category;
    /**
     * 风险专业
     */
    @ApiModelProperty(value = "风险专业")
    @Excel(name="风险专业")
    private String risk;
    /**
     * 局分管领导
     */
    @ApiModelProperty(value = "局分管领导")
    @Excel(name="局分管领导")
    private String groupLeader;
    /**
     * 公司分管领导
     */
    @ApiModelProperty(value = "公司分管领导")
    @Excel(name="公司分管领导")
    private String companyLeader;
    /**
     * 工期状态等级
     */
    @ApiModelProperty(value = "工期状态等级")
    @Excel(name="工期状态等级")
    private String durationGrade;
    /**
     * 排序
     */
    @ApiModelProperty(value = "排序")
    @Excel(name="排序")
    private String sort;
    /**
     * 是否隧道工程
     */
    @ApiModelProperty(value = "是否隧道工程")
    @Excel(name="是否隧道工程",replace = {"是_1","否_0"})
    private String tunnel;
    /**
     * 是否地铁工程
     */
    @ApiModelProperty(value = "是否地铁工程")
    @Excel(name="是否地铁工程",replace = {"是_1","否_0"})
    private String subway;
    /**
     * 是否高难度桥梁
     */
    @ApiModelProperty(value = "是否高难度桥梁")
    @Excel(name="是否高难度桥梁",replace = {"是_1","否_0"})
    private String bridge;
    /**
     * 是否既有线施工
     */
    @ApiModelProperty(value = "是否既有线施工")
    @Excel(name="是否既有线施工",replace = {"是_1","否_0"})
    private String operatingLine;

    /**
     * 经纬度坐标
     */
    @ApiModelProperty(value = "经纬度坐标")
    @Excel(name="坐标")
    private String gps;

    /**
     * 项目状态
     */
    @ApiModelProperty(value = "项目状态")
    private String state;
    /**
     * 建设单位
     */
    @ApiModelProperty(value = "建设单位")
    @Excel(name="建设单位")
    private String investedUnits;
    /**
     * 监理单位
     */
    @ApiModelProperty(value = "监理单位")
    @Excel(name="监理单位")
    private String supervisionUnits;
    /**
     * 起点里程
     */
    @ApiModelProperty(value = "起点里程")
    @Excel(name="起点里程")
    private String beginMileage;
    /**
     * 终点里程
     */
    @ApiModelProperty(value = "终点里程")
    @Excel(name="终点里程")
    private String endMileage;
    /**
     * 合同造价
     */
    @ApiModelProperty(value = "合同造价")
    @Excel(name="合同造价")
    private String contractCost;
    /**
     * 开工日期
     */
    @ApiModelProperty(value = "开工日期")
    @Excel(name="开工日期")
    @JsonFormat(shape=JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date beginDate;
    /**
     * 竣工日期
     */
    @ApiModelProperty(value = "竣工日期")
    @Excel(name="竣工日期")
    @JsonFormat(shape=JsonFormat.Shape.STRING,pattern="yyyy-MM-dd",timezone="GMT+8")
    private Date endDate;
    /**
     * 详细地址
     */
    @ApiModelProperty(value = "详细地址")
    @Excel(name="详细地址")
    private String address;
    /**
     * 项目概况
     */
    @ApiModelProperty(value = "项目概况")
    @Excel(name="项目概况")
    private String profile;
    /**
     * 创建人
     */
    @ApiModelProperty(value = "创建人")
    private String creator;
    /**
     * 创建时间
     */
    @ApiModelProperty(value = "创建时间")
    private Date createDate;
    /**
     * 修改人
     */
    @ApiModelProperty(value = "修改人")
    private String modifiedBy;
    /**
     * 修改时间
     */
    @ApiModelProperty(value = "修改时间")
    private Date modifyDate;

    /**
     * 所属项目名称
     */
    @ApiModelProperty(value = "所属项目名称")
    @Transient
    private String orgName;

    @Transient
    private String investedUnitsName;

    @Transient
    private String supervisionUnitsName;

}